#include "GatherDataHandlerMemory.h"
#include "stdio.h"

/*
	1.如果温度检测连续10次都不正常 （可能故障） 让心跳任务里面的led停止闪烁


*/
u8 times=0;
extern int heartState;//来源于 心跳模块
TargetGatherData targetData;

u8 clearData(const GatherData *source){
	if (source->temp>200)
	{
		times++;
		if (times>10)
		{
			heartState=0;
			return 0;
		}
			
		return 1;
	}else{
		//设备正常
		heartState=1;//让工作灯正常闪烁
		times=0;//累计的次数清零
		return 0;
	}
	
}


void processData(const GatherData *source){
	targetData.humi=source->humi;
	targetData.temp=source->temp;
	targetData.smoke=source->smoke/40;
	targetData.sunshine=100-(source->smoke/40);
	targetData.raidrop=source->raidrop;
}

/*
	对采集的原始数据进行加工处理
	数据清洗：对数据检查，校验，清洗错误数据


*/
void dataHandler(GatherData *source){
	//1.非空判断
	if(source==NULL){
		printf("gather task error \r\n");
		return;
	}
	//2.数据清洗
	u8 res= clearData(source);
	if(res)return;//采集的数据如果不正常 就不继续往下工作

	//3.如果心跳状态不正常 也不需要向下执行
	if(heartState==0) return;

	//4.对数据进行加工处理
	processData(source);

	//5.如果数据要远程存储
	//调用http请求发送数据
}
